﻿using System;

namespace _029_属性
{
    public class Stock
    {
        decimal currentPrice; // “背后”的私有字段

        // 属性和字段的声明很类似，但属性比字段多了一个get/set块。
        public decimal CurrentPrice // 公有属性
        {
            get { return currentPrice; }
            set { currentPrice = value; }
        }
    }
    class Program
    {
        // 只读和计算属性
        Decimal currentPrice, shareOwned;

        public decimal Worth
        {
            get { return currentPrice * shareOwned; }
        }

        // 自动属性
        public class Stock
        {
            public decimal CurrentPrice { get; set; }
        }

        // get和set访问器可以有不同的访问级别。
        // 典型的用法是，将一个public的属性中的set访问器设置成internal或private的：
        public class Foo
        {
            private decimal x;
            public decimal X
            {
                get { return x; }
                private set { x = Math.Round(value, 2); }
            }
        }
        static void Main(string[] args)
        {
        }
    }
}